Search Results: "Decklin Foster"

22 March 2006

Decklin Foster: Brooks s Law

When Ubuntu said they were going to focus on polishing Dapper because it was the release that was going to go head to head against Vista, I said to myself, come on, people, you d easily be safe with 6.10 . And voila. Besides, everyone knows the summer is the best time for hacking! I sincerely hope the previous sentence serves as enough of a smiley face for no one to blog an, um, rebuttal.

15 March 2006

Martin F. Krafft: Discovering MPD

I have a server with libapache2-mod-musicindex serving several hundreds of gigabytes. I also have a headless router at home with a soundcard. My desire was to figure out how to make the router stream music from that server before I went to sleep. Just short of coming up with a quick'n'ugly hack, Decklin Foster saved my day by pointing me to mpd. It runs as a daemon and accepts network commands. It wasn't until I found out that you can pipe the playlists served by libapache2-mod-musicindex to mpc add that I completely fell in love. Now I hacked together a script, playstream, which I can integrate with mailcap:
$ cat <<_eof >> ~/.mailcap
audio/mpegurl;     ~/bin/playstream -q '%s'; nametemplate=%s.m3u
audio/x-mpegurl;   ~/bin/playstream -q '%s'; nametemplate=%s.m3u
audio/x-scpls;     ~/bin/playstream -q '%s'; nametemplate=%s.pls
The -q option queues the playlist up next. Other options I've added are -a for append (the default), and -r for replace. I know I should have this in version control, but that's all under construction right now. I have asked the mpc maintainer to include it. Update: Firefox is once again really annoying. I appreciate the fact that it tries to honour the mailcap standard. However, if I say that the handler if playstream -q %s, I really mean that, including the -q; Firefox apparently just reads the first word and appends the downloaded file. Argh.

9 March 2006

Decklin Foster: I have not actually had a chance to test this yet

Dear Lazyweb, Does anyone know how to remap Caps Lock to Control in Windows for a specific keymap (e.g. Dvorak) only? The standard thing appears to be hardware-level.

23 February 2006

Decklin Foster: I feel the need to pass this on

The apartment downstairs is free as in malloc, not as in beer.

21 February 2006

Decklin Foster: Flow Control

Raise your hand if you have ever said, I wish I could use C-s and C-q in Firefox.

15 February 2006

Decklin Foster: Whoops

Apropos of my last post here, I am redoing my rawdog config and writing a tag plugin. This involved merging all my state pickles into one file first, which rather strangely brought my server to its knees until the OOM-killer kicked in. I couldn't figure out what was going on for a second. And then I noticed that ever since I switched it to LVM I wasn't using my swap partition at all. So, a word of warning: never assume your fstab is right just because your filesystems show up. Pickle still needs to be replaced, but a lot of things need to be replaced.

11 February 2006

Decklin Foster: I got lost

You know it s bad when writing several screenfuls of recursive fuzzy tree matcher in Python is fun and doing a tiny bit of tree and Makefile maintenance on a C project so you can push out fixes from last year is a chore you ve been putting off for weeks.

3 February 2006

Decklin Foster: New blog

Okay, I m putting this blog on Planet Debian... now. The old one is not gone yet, because I m tired and I don t think I ll do it until tomorrow. In a fit of hubris, I wrote some software to run this blog (which is just a bunch of generated static files), called Mnemosyne. I was bored of PyBlosxom and it was slow. I believe Erinn said something like, now it s only a matter of time until I write my own RCS... If I get to that point I will really start worrying. If anyone is looking for something along these lines, please tell me what sucks and/or what is broken. Anyway, rather than categorizing things (ugh), I m just putting anything tagged planet in the feed that goes here. I think this will work better. Oh, and I almost forgot: my blog now has automatic flooding-prevention. Nothing older than a day gets in this feed. I don t know why feeds in general don t have some sort of time limit.

21 January 2006

Decklin Foster: More hate

Registrars who intentionally make it difficult to get AUTH-IDs for a transfer are pure evil. I mean, support@ was nice and all, but this should be a button on the web site, not something senior staff have to deal with personally.

19 January 2006

Decklin Foster: Camping

Just in case anyone has not read about Camping yet: Why is still adding more documentation to yesterday s entry. It s wonderful.

17 January 2006

Decklin Foster: You Can't Eat Culture

You know what I hate? I hate message boards.

Decklin Foster: Worf Impression

Seriously, people, if you want me to click on your survey, explain, in the email, what you are trying to find out and why I should care and in particular why you think self-selected results are worth anything. Don t assume we re not interested in these things! Geeks love research. We do not, however, love boring. Or love pointless.

10 January 2006

Decklin Foster: We Interrupt This Mistake to Bring You

Cripes. Don t ever let me touch the BTS again. At least I sort of fixed PySyck today. Is this still a good idea? I don t know. But I guess someone has to actually use it to get things working.

Decklin Foster: Ogg Quicktime

Hey! Windows/Mac people! Do these work now? I will be extremely happy if the answer is yes.

6 January 2006

Decklin Foster: Musicbrainz Licensing

OK, this one is actually directed at fellow Debianers. I know we can probably weasel out of having a problem distributing code that only talks to a non-commercial-use server somehow, because it really is not any sort of restriction on the code per se, and there are a million precedents (hello, Gaim buddy list next to this window, you used to not have Jabber support), but this still leaves a sour taste in my mouth. At least FreeDB is GPL. I don t think this is worthy of a thread on -legal yet (nothing has been decided), and I m not trying to hold one here, but I guess I ll have to keep watching this. Sigh.

4 January 2006

Decklin Foster: The -devel Show

I think Debian ought to have a gong. (OK, the rest of that article is kind of blah blah blah, but I think out-of-context gongs are inherently funny.)

31 December 2005

Decklin Foster: Stabbing in the dark

There, I think I finally disagree with Language Log. Honestly, why do you think we don t teach linguistic analysis of any sort at all anymore? Because literature and composition classes have become the same thing: the best compromise for a set of conflicting requirements. We can do better. Any incompetent moron can teach you pointers and recursion. No, it does not matter if they are using a language you consider boring and ugly. But what they cannot teach you is how to think. Which one is your problem space? Programming languages do not map onto natural languages. Yes, you learn Latin so you can grasp grammar, logic and rhetoric. You do not learn $LANGUAGE so you can grasp pointers, recursion, and typing. You learn pointers, recursion, and typing so you can grasp clarity, expressiveness, refactorability, efficiency, and how to turn a mental model into a computable abstraction and vice versa. Learning the programming language is like learning how to hold a pencil and use a piece of paper so you can write the Latin words. It s kindergarten stuff and half of us can t teach it to college students. No, it doesn t matter if you use a pen instead. I suppose it doesn t matter if you have to use a typewriter with no whiteout and one hand tied behind your back, because that is very popular, or whatever. Or maybe you think it does. But stop acting like that s the fucking point. Both of you.

29 December 2005

Decklin Foster: An Explanation Is Requested

In case anyone only reading the tech feed is wondering why those particular bits of sarcasm (I think I should just stop doing that about holy-war topics) floated to the top of my feed this morning, it was a bunch of stupidity on my part and an occasionally annoying feature of PyBlosxom.

Decklin Foster: Go abcde

Jesus Climent asks why I don t just provide the MusicBrainz data in a useable form for abcde as well. Really, what gave me pause was adding a dependency on all of Python to a package written in shell. It s either that or actually implementing MB in shell, which would be... impressive. But I suppose a Suggests: or something wouldn't be too bad. So, Jesus, your wish is my command! Perhaps you can find musicbrainz-get-tracks useful (does that jibe with the naming scheme for the internal cddb commands? I don t really remember). It s simply a version of lastcd from my package with some extraneous options thrown out and output in faked CDDB format instead of YAML. So yes, now abcde and anyone else s stupid program that is still using FreeDB (augh! DIE DIE DIE) can get its data from MB instead. Warning: I tested this on all of two CDs (one V/A, one not).

Decklin Foster: lastfmsubmitd

Apparently, tis the season to be writing your own Last.fm plugin. So here is mine. I finally got fed up with finding and causing bugs in mpdscribble (I am a bad sponsor!) it s written in C with libsoup, blah blah, can t stand C, and so I revived the MPD pseudo-listener I had started on as a replacement for that awful orphaned cacheless one-off we were all using before mpdscribble. I also fixed a few issues that were bugging me, like failing to detect restarts and tag changes. Not wanting to muddy up any of that logic with HTTP gar, I decided to write a separate program to queue, cache and send along song submissions. They re two or three hundred lines of Python each, and single-threaded (yes, that means child writers blocking and hanging around if the network code is in the middle of timing out or backing off. Deal with it! This is UNIX). I m pretty happy with the design, although the implementation is still very rough. This also mimics the model they want to move to for player plugins in general, which is good, because it will be less work for me to implement version 2.0 of the protocol once that is finalized. Additionally, I was able to find a more satisfying way to solve the disconnected-CD-player problem than my previous dreadful method of either using a few kludgey scripts to frob around in my primary plugin s cache or dealing with using cdscrobbler and having to be very careful about one plugin not stepping on the other s toes and invalidating my backlog. So this is the second example program included. (Oh yes, that part uses the Python bindings for MusicBrainz. MB is awesome. The Python bindings are hideous, however straight port of the C++ API. I d probably be better off just dumping the RDF into a real RDF implementation and doing my own cross-referencing, instead of prying it out piecemeal with select queries and non-polymorphic getters and all the other absolute nonsense you have to deal with when writing in a language without high-level data types or garbage collection. But regardless of implementation woes, this has kept me close to the MB metadata for my favorite CDs, and so I ve been busy all week entering and voting on mods (and doing research to justify my changes), which is very satisfying. I have yet to begin the gargantuan task of adding MB tags to my Ogg collection (I know, this is really just a matter of babysitting tp_tagger, but I ve got some work cut out for me to even get to that point).) And of course, once this becomes less prototypey, anyone who likes it can knock all the networking code out of their plugin and use it as their system service . Perhaps if I m agile enough this can become official code! It is at least a mootable proof-of-concept that UNIX systems don t necessarily need a heavyweight libscrobbler to abstract the service stuff out of the player plugin. I won t get my hopes up though. Still a bit unsure about the name. Theoretically it seems the service (you know, the thing we pay money to if we like it) should be Last.fm, while the software and protocols should still be Audioscrobbler, but the distinction does not seem to be drawn very clearly in practice. With the analogous situation of livejournal vs. ljcom you had a grokkable technical delineation (different repositories) as well as other widely used installations besides ljcom (DeadJournal, etc). I really can t see there ever being a competing installation of Audioscrobbler, because licensing the streamables is a formidable investment hurdle, and there s a negative market effect (also, the web site is not open source). But I am also bored of just sticking scrobble onto something else, so I wanted to grab sticking last onto something else before it got old. I haven t the faintest clue what makes me prefer whimsical names for some projects and prosaic ones for others. Note to actual MPD users (all, like, 5 of you): the stuff in the package will not handshake at the moment, as I have not yet gotten Russ to bless the client ID I made up. Will try to catch him tomorrow. Or later today I suppose. It s ready to go now. Next up: Because it s either this or Sound Juicer, I think perhaps it s time to bid adieu to abcde and write a MusicBrainz plugin for jack (jack is nice enough, I just haven t had a truly compelling reason to switch, and there have always been lots of good eyeballs on abcde). FreeDB delenda est.

Next.

Previous.